The goal of a recommendation system is to produce relevant and personalized recommendations for users based on historical data. While there are a plethora of techniques, most fall under either one or a hybrid of collaborative filtering or content-based filtering. Collaborative filtering techniques take advantage of large volumes of user and item consumption data to identify implicit interaction relationships between the user and an item. Content-based filtering focuses on explicit relationships amongst the items and preferences of the user.
When implementing a recommendation system that uses collaborative filtering, there are multiple techniques available for processing the large volumes of user and item consumption data. One such technique, neural network, is a machine-learning algorithm inspired by the neurological structure of the brain. A neural network typically comprises an input layer, one or more hidden layer(s) and an output layer. The nodes in each layer connect to nodes in the subsequent layer and the strengths of these interconnections are typically learnt from data during the training process.
However, current recommendation systems that utilize neural network techniques are often limited to providing recommendations for only those items included in the output layer of a generated prediction model (e.g., item consumption data provided as a set of outputs). This is not ideal since most item providers would like to provide recommendations for a broader range of items.